PARAMETERS û przyk│ad deklaracji

W tym przyk│adzie u┐ytkownik powinien podaµ nazwΩ stanowiska, kt≤re bΩdzie elementem kryterium kwerendy.

W tym przyk│adzie wywo│ywana jest procedura WyliczPola, kt≤r╣ mo┐na znaleƒµ w przyk│adzie dotycz╣cym instrukcji SELECT.

Sub ParametersX()

    Dim dbs As Database, qdf As QueryDef

    Dim rst As Recordset

    Dim strSql As String, strParam As String

    Dim strKomunikat As String

    Dim intPolecenie As Integer

    

    ' Zmodyfikuj ten wiersz tak, by £cie┐ka wskazywa│a

    ' na rzeczywist╣ bazΩ danych Northwind.

    Set dbs = OpenDatabase("NorthWind.mdb")

    

    ' Zdefiniuj klauzulΩ parametr≤w.

    strParm = "PARAMETERS [Tytu│ pracownika] CHAR; "

    ' Zdefiniuj instrukcjΩ SQL z klauzul╣ parametr≤w.

    strSql = strParm & "SELECT Nazwisko, ImiΩ, " _

        & "NrPracownika " _

        & "FROM Pracownicy " _

        & "WHERE Tytu│ = [Tytu│ pracownika];"

    

    ' Utw≤rz obiekt typu QueryDef bazuj╣cy

    ' na instrukcji SQL.

    Set qdf = dbs.CreateQueryDef _

        ("Znajdƒ pracownik≤w", strSql)

    

    Do While True

        strKomunikat = _

            "Znajdƒ pracownik≤w wg stanowiska " _ & Chr(13) _

            & "  Wybierz stanowisko:" & Chr(13) _

            & "   1 - Szef sprzeda┐y" & Chr(13)  _

            & "   2 - Przedstawiciel handlowy" _

            & Chr(13) _ & "   3 - Koordynator sprzeda┐y

        

        intPolecenie = Val(InputBox(strKomunikat))

        

        Select Case intPolecenie

            Case 1

                qdf("Tytu│ pracownika") = _

                    "Szef sprzeda┐y "

            Case 2

                qdf("Tytu│ pracownika") = _

                    "Przedstawiciel handlowy"

            Case 3

                qdf("Tytu│ pracownika") = _

                    "Koordynator sprzeda┐y"

            Case Else

                Exit Do

        End Select

        

        ' Utw≤rz tymczasowy obiekt Recordset ' typu utrwalonego.

        Set rst = qdf.OpenRecordset(dbOpenSnapshot)

        ' Zape│nij obiekt Recordset.

        rst.MoveLast

            

    ' Wywo│aj procedurΩ WyliczPola w celu

    ' wydrukowania zawarto£ci obiektu Recordset. Przeka┐ obiekt

    ' Recordset i wymagan╣ szeroko£µ pola.

        WyliczPola rst, 12

    Loop

    

' Poniewa┐ jest to przyk│ad,

' Usu± obiekt typu QueryDef.

    dbs.QueryDefs.Delete "Znajdƒ pracownik≤w"

    

    dbs.Close

End Sub